package sysu.el.graph;

import sysu.el.graph.undi.UndiGTInterface;
import sysu.el.matrix.ints.MatInt;

public abstract class GTMatrix extends MatInt implements GTInterface {

	/* ******************************************************************** */
	/* ************************* Constructors ***************************** */
	/* ******************************************************************** */
	public GTMatrix(){}

	public GTMatrix(int nodeNum){
		this.w = MatInt.buildPhalanx(nodeNum);
	}

	/* ******************************************************************** */
	/* ************************* Essential OP ***************************** */
	/* ******************************************************************** */
	public abstract void setChain(int num, int chain[], int val);

	public void setChain(int chain[], int val){
		this.setChain(chain.length, chain, val);
	}
	
	/* ******************************************************************** */
	/* ************************* Interface OP ***************************** */
	/* ******************************************************************** */

	// GTInterface
	public abstract void addEdge(int src, int dst, int val);
//	public abstract void setEdge(int src, int dst, int val);
	
	public int getW(int i, int j){
		return this.w[i][j];
	}

	public int getNodeNum() {
		return this.w.length;
	}

}
